package challenge.计挑模拟赛;
import java.util.Scanner;

public class A {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
//        System.out.println(reverse(n));
        int max = 200000000;
        for(int i = n; i < max; i++){
            if(check(i * reverse(i))){
                System.out.println(i + " " +reverse(i));
                return;
            }
        }
        System.out.println("F");
    }
    static long reverse(int num){
        long sum = 0;
        while(num > 0){
            sum = sum * 10 + num % 10;
            num /= 10;
        }
        return sum;
    }
    static boolean check(long num){
        return num >= 100000000 && num <= 200000000;
    }
}

/*
16.从大于等于N的正整数里找到一个最小的数M，使之满足：
M和M的逆序数（如1230的逆序数为321）的乘积为一个[100000000,200000000]区间内的值。
输入说明：起始数字N；
输出说明：找到的第一个符合条件的数，如果没有符合条件的数，输出F。
输入样例：123456
输出样例：124100

 */